#ifndef POLYGON_H
#define POLYGON_H

#include <object.h>
#include <surface.h>
#include <coord.h>
#include <line.h>
#include <linkedlist.h>

#include <assert.h>

typedef struct polygon
{
  object_t obj;
  linkedlist_t *vertexes;
} polygon_t;

polygon_t *
polygon_new( void );

void
polygon_free( polygon_t *polygon );

void
polygon_add_vertex( polygon_t *p, uint16_t x, uint16_t y );

void
polygon_clear_vertexes( polygon_t *p );

char *
polygon_str( polygon_t *polygon );

void
__polygon_draw( polygon_t *polygon, surface_t *surface );

void
polygon_draw( polygon_t *polygon, surface_t *surface );

#endif /* POLYGON_H */
